﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Sistema_Totem.Presentacion.Contrato.Plantillas;
using Sistema_Totem.Logica.Comandos.ComandoPlantilla;
using Sistema_Totem.Clases;
using Sistema_Totem.Clases.Fabricas;
using System.Web.UI.WebControls;
using Sistema_Totem.Logica.Fabricas;
using Sistema_Totem.Logica.Comandos;

namespace Sistema_Totem.Presentacion.Presentador.Plantillas
{
    public class PresentadorAgregarPlantillaPasoDos
    {
        private IContratoAgregarPlantillaPasoDos _vista;
        private Entidad _generico;
        private Comando<Entidad> _comando;

        public PresentadorAgregarPlantillaPasoDos(IContratoAgregarPlantillaPasoDos vista) 
        {
            _vista = vista;
        }
        /// <summary>
        /// Metodo que inicializa el tipo generico con la entidad que es pasada por referencia
        /// </summary>
        /// <param name="generico">Retorna un objeto que tiene la entidad creada en la pagina anterior</param>
        public void IniciarVista(Entidad generico)
        {         
            _generico = generico;
        }
        /// <summary>
        /// Este método genera un numero de textbox dependiendo del numero que se pase por referencia 
        /// </summary>
        /// <param name="cantidad">Devueleve los textbox</param>
        public void ActualizarVista(int cantidad) 
        {
           
            for (int i = 0; i < cantidad; i++)
            {
                Label Lab = new Label();
                Lab = new Label();
                Lab.Width = 65;
                Lab.Text = "Seccion " + (+i + 1);
                Lab.Style.Value = "text-align: right; padding: 5px 5px 5px 5px;";
                _vista.Panel2.Controls.Add(Lab);

                TextBox Tbox = new TextBox();
                Tbox.Width = 200;
                Tbox.ID = "TextBox " + (+i + 1);
                _vista.Panel3.Controls.Add(Tbox);
                RequiredFieldValidator validate = new RequiredFieldValidator();
                validate.ID = "valid" + (+i + 1);
                validate.ControlToValidate = Tbox.ID;
                validate.ErrorMessage = "*";
                validate.ForeColor = System.Drawing.Color.Red;
                validate.Display = ValidatorDisplay.Dynamic;
                _vista.Panel3.Controls.Add(validate);

                DropDownList CantElem = new DropDownList();
                for (int j = 0; j < 20; j++)
                {
                    CantElem.Items.Add((j + 1).ToString());
                }
                CantElem.Width = 180;
                _vista.Panel4.Controls.Add(CantElem);
            }
        }

        /// <summary>
        /// Este metodo llama a un comando y se le pasa la entidad y paneles
        /// </summary>
        /// <returns>Trae las secciones y cantidad de elementos por seccion a la plantilla</returns>
        public Entidad _Ejecutar()
        {
            _comando = FabricaComando.CrearComandoAgregarPlantillaPasoDos(_vista.Panel3, _vista.Panel4,_generico);
            return _comando.Ejecutar();
        }
    }
}